Dependence Testing for Parallelizing Compilers ECE 1754 Survey Paper Student : Franjo Plavec Toronto , May 2003
نویسنده
چکیده
Dependence testing is an important aspect of a parallelizing compiler. Precise data dependence information is necessary to detect parallelism. Main source of the parallelism in programs are loops. Dependence testing discovers data dependences between iterations of nested loops. In this paper we present the dependence testing problem, terminology and concepts used in dependence testing. We present several simple dependence tests, and two complex algorithms, the Omega test and Rice test. We compare the effectiveness and efficiency of various tests and algorithms and discuss possible improvements.
منابع مشابه
The K Test: an Exact and Efficient Knowledge-based Data Dependence Testing Method for Parallelizing Compilers
Many different classes of multiprocessors have been designed and implemented in industry and academia. Therefore, it has become an important issue to develop parallelizing compiling techniques that can exploit the potential power of multiprocessors. In this paper, we concentrate on the fundamental phase, data dependence analysis, in parallelizing compilers. We propose a new approach that integr...
متن کاملSimplifying Polynomial Constraints over Integers to Make Dependence Analysis More Precise Simplifying Polynomial Constraints over Integers to Make Dependence Analysis More Precise
Why do existing parallelizing compilers and environments fail to parallelize many realistic FORTRAN programs? One of the reasons is that these programs contain a number of linearized array references, such as A(M*N*i+N*j+k) or A(i*(i+1)/2+j). Performing exact dependence analysis for these references requires testing polynomial constraints for integer solutions. Most existing dependence analysis...
متن کاملPolaris: Improving the Effectiveness of Parallelizing Compilers
It is the goal of the Polaris project to develop a new parallelizing compiler that will overcome limitations of current compilers. While current parallelizing compilers may succeed on small kernels, they often fail to extract any meaningful parallelism from large applications. After a study of application codes, it was concluded that by adding a few new techniques to current compilers, automati...
متن کاملEvaluation of Parallelizing Compilers
The recognition and exploitation of parallelism is a diicult problem for restructuring compilers. We present a method for evaluating the eeectiveness of parallelizing compilers in general and of speciic compiler techniques. We also report two groups of measurements that are the results of using this technique. One evaluates a commercially available parallelizer, KAP/Concurrent, and the other co...
متن کاملSupporting Array Dependence Testing for an Optimizing/Parallelizing C Compiler
A practical context-sensitive inter-procedural analysis framework for c compilers. [Mas92] Vadim Maslov. Delinearization : An ecient way to break multiloop dependence equations. The omega test : A fast and practical integer programming algorithm for dependence analysis.
متن کامل